As display devices of various sizes and increased resolution have been developed and the demand for them have increased, the ability for a graphics processing system to resize and resample source images and create destination images to take advantage of the various sized and higher resolution displays is a desirable operation. In an electronic display system, color at each pixel is represented by a set of color components, and each color component is represented by a sample value. Color components such as red, green, blue (RGB) or other representations such as YCbCr are well known in the art. Whichever representation is chosen, each color component can be interpreted as a two dimensional array of samples, so three such arrays can represent images on display systems. Conceptually, resampling can be viewed as a spatial process, working on discrete input samples, represented by pixels of the source image arranged in a two-dimensional bitmap. The output samples of the destination image are spatially located at fractional sample positions within the input sample grid. Various interpolation and modeling methods are used to construct transition models between samples of the source image from which additional graphics data is produced during the resampling operation.
The additional graphics data is then used to produce larger or higher resolution destination graphics images. However, the resulting destination image must retain an acceptable image quality with respect to the source image. That is, the destination image should appear to retain at least a similar visual qualities of the source image, such as having nearly the same color balance, contrast, and brightness as the original source image. Otherwise, rather than accurately reproducing a larger or higher resolution graphics image of the source image, the resampling operation will compromise image quality by introducing image distortion. To this end, various resampling algorithms have been developed in order to create high quality destination graphics images.
With many conventional resampling algorithms, a transition model between input samples along each axis is constructed to provide output sample values. Generally good results can be obtained with separable processing along each axis for graphics images because image feature cross-sections have the same characteristics when viewed at any angle within the image plane, only at different effective sample rates. The transition models between the input samples are constructed such that the output samples interpolated from the transition model create a destination image that closely resembles the original or source image. The transition models are typically continuous so that an output sample can be generated at any position between the input samples.
Although an axis separable cubic model between two input samples can provide a model with very desirable reconstruction characteristics, algorithms for resampling and sharpening graphics data representing one type of graphics images often are not suitable for resizing and resampling graphics data representing another type of graphics images. For example, resampling graphics data representing text images differs from resampling graphics data representing video in that the resampling process used to interpolate destination pixels from the source image for text typically assumes some sort of plateau model around each pixel with no overshoots between pixels of different color levels. Therefore, only input samples either side of an output sample contribute to the value of the destination pixel. As a result, if text resampling models are used for graphics data representing video, it tends to produce blurry transitions on a computer monitor, and original image line structure is often visible. Moreover, algorithms for resampling bitmaps are generally more difficult to design than those for resampling video signals, because there is an expectation of presenting clear and legible text in an output image. Also, there is no restriction in how close the viewer gets the monitor, unlike video where 3× picture height is the recommended minimum viewing distance.
Text images have several important visual attributes, such as contrast, uniformity, sharpness, and font size. The use of two highly contrasting text levels on a high resolution monitor will produce nicely readable text for a range of font sizes. However, the challenge is to retain these attributes after resampling. In the ideal case, artificial intelligence could analyze text and figure out how to resize text using just the original text and background levels (pixel replication). This approach could potentially maintain absolute text quality, while preserving its essential attributes. In practice, however, text analysis and reconstruction is an extremely complex human perceptual problem, involving many iterative weighting measurements. For example, text may contain subtle variations which to some degree need to be preserved on the output, notably bold verses regular text, so we should not be too aggressive in thickening text.
Using simple pixel replication for up-sampling text by integer ratios typically produces excellent results. All relative and absolute text aspects listed above are maintained although the perceived brightness or darkness relative to the original image may increase slightly due to the increase in isolated feature sizes. However, for up-sampling text by a small non-integer up-sample ratio, the operation is much harder in that the profile of an isolated input pixel cannot be represented with an exact number of output pixels. For example, if a source image is up-samples by a ratio of 1.25:1, an isolated input pixel cannot be represented as 1.25 output pixels. Instead, the isolated input pixel is represented by a single output pixel, two output pixels, or one or two output pixels supplemented with use of gray levels.
Single or two pixel representation requires knowledge of the surrounding pixels at a given position, in order to determine whether a pixel is isolated. If some pixels are narrowed, others must be widened to compensate, or vice-versa. Compensation should only occur in larger features (2 or more pixels wide) so that visible artifacts are minimized. With alternating extreme pixel levels, no such compensation is possible, and the uneven widths of features can become visible.
Single pixel narrowing maintains sharpness and intensity but causes the following negative effects: inconsistent pixel placement and visible gapping. With inconsistent pixel placement, an output sample may not lie exactly on top of an input sample, and a character's shape may appear to change when rendered in different places, depending upon its position with respect to the output sampling grid. With visible gapping, visible gaps may appear in single-pixel diagonal lines on the input. Many characters have diagonal edges, and the eye sees these gaps very readily.
If we represent an isolated input pixel as a two output pixel profile, then we can fix the diagonal problem, but we are still inconsistent in line placement, and the perceived line width increase (2/1.25=1.6×) is noticeable in absolute terms. The biggest problem with this approach is loss of internal detail in dense characters (i.e., where isolated pixels can be separated by as few as two pixels) a problem so severe that sometimes the enclosed region in an ‘e’ could be barely visible.
Therefore, there is a need for a method and system that is suitable for resampling graphics data representing text images.